﻿using BonjourQuotation.UI.Models.BaseModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Web;
using System.Web.WebPages.Html;

namespace BonjourQuotation.UI.Models.PartialModel
{
    public class OperationAttractionsGridViewModel : UserAllPermissionsViewModel
    {
        public double AttractionsLeftScrollPossition { get; set; }
        public double AttractionsTopScrollPossition { get; set; }
        public bool IsAttractionsCanPrev { get; set; }
        public bool IsAttractionsCanNext { get; set; }
        public string AttractionsCount { get; set; }
        public int AttractionsCountCheck { get; set; }
        public List<OperationAttractionsGridRowViewModel> Rows { get; set; }
        public List<OperationAttractionsGridSaveRowViewModel> SaveRows { get; set; }
        public List<OperationAttractionsVendorInfoViewModel> VendorInfo { get; set; }
        public int AttractionsPageNumber { get; set; }
        // Group Code filter
        public List<CheckBoxControlViewModel> AttractionsFilterGroupCode { get; set; }
        public List<CheckBoxControlViewModel> AttractionsFilterSelGroupCode { get; set; }
        public List<string> SelectedAttractionsFilterGroupCode { set; get; }
        // Group Name filter
        public List<CheckBoxControlViewModel> AttractionsFilterGroupName { get; set; }
        public List<CheckBoxControlViewModel> AttractionsFilterSelGroupName { get; set; }
        public List<string> SelectedAttractionsFilterGroupName { set; get; }
        // Customer filter
        public List<CheckBoxControlViewModel> AttractionsFilterCustomerCode { get; set; }
        public List<CheckBoxControlViewModel> AttractionsFilterSelCustomerCode { get; set; }
        public List<string> SelectedAttractionsFilterCustomerCode { set; get; }
        // Status filter
        public List<CheckBoxControlViewModel> AttractionsFilterStatus { get; set; }
        public List<CheckBoxControlViewModel> AttractionsFilterSelStatus { get; set; }
        public List<string> SelectedAttractionsFilterStatus { set; get; }
        // Vendor Name filter
        public List<CheckBoxControlViewModel> AttractionsFilterVendorName { get; set; }
        public List<CheckBoxControlViewModel> AttractionsFilterSelVendorName { get; set; }
        public List<string> SelectedAttractionsFilterVendorName { set; get; }
        // Vendor Name filter
        public List<CheckBoxControlViewModel> AttractionsFilterVendorType { get; set; }
        public List<CheckBoxControlViewModel> AttractionsFilterSelVendorType { get; set; }
        public List<string> SelectedAttractionsFilterVendorType { set; get; }
        // Vendor City filter
        public List<CheckBoxControlViewModel> AttractionsFilterVendorCity { get; set; }
        public List<CheckBoxControlViewModel> AttractionsFilterSelVendorCity { get; set; }
        public List<string> SelectedAttractionsFilterVendorCity { set; get; }
        // Restaurant Type filter
        public List<CheckBoxControlViewModel> AttractionsFilterRestaurantType { get; set; }
        public List<CheckBoxControlViewModel> AttractionsFilterSelRestaurantType { get; set; }
        public List<string> SelectedAttractionsFilterRestaurantType { set; get; }
        // Filter Remove
        public bool IsRemoveAttractionsFilterDivShow { set; get; }
        public bool IsRemoveAttractionsCustomerCodeFilter { set; get; }
        public bool IsRemoveAttractionsGroupCodeFilter { set; get; }
        public bool IsRemoveAttractionsGroupNameFilter { set; get; }
        public bool IsRemoveAttractionsVendorNameFilter { set; get; }
        public bool IsRemoveAttractionsVendorCityFilter { set; get; }
        public bool IsRemoveAttractionsStatusFilter { set; get; }
        public bool IsRemoveAttractionsVendorTypeFilter { set; get; }
        public bool IsRemoveAttractionsRestaurantTypeFilter { set; get; }
        // Hide Show
        public bool ViewAttractionsIsGuideInvoice { get; set; }
        public bool ViewAttractionsGuideInvoicePrice { get; set; }
        public bool ViewAttractionsIsInvoice { get; set; }
        public bool ViewAttractionsInvoicePrice { get; set; }
        public bool ViewAttractionsOptionalHtml { get; set; }
        public bool ViewAttractionsGroupCode { get; set; }
        public bool ViewAttractionsGroupName { get; set; }
        public bool ViewAttractionsConfHtml { get; set; }
        public bool ViewAttractionsCustomer { get; set; }
        public bool ViewAttractionsEmployee { get; set; }
        public bool ViewAttractionsPax { get; set; }
        public bool ViewAttractionsEstNumberofPerson { set; get; }
        public bool ViewAttractionsSupplier { get; set; }
        public bool ViewAttractionsStatus { get; set; }
        public bool ViewAttractionsRestService { get; set; }
        public bool ViewAttractionsCurrency { get; set; }
        public bool ViewAttractionsQuotaPrice { get; set; }
        public bool ViewAttractionsQuotaSupplier { get; set; }
        public bool ViewAttractionsDifference { get; set; }
        public bool ViewAttractionsDone { get; set; }
        public bool ViewAttractionsDate { get; set; }
        public bool ViewAttractionsTime { get; set; }
        public bool ViewAttractionsCategory { get; set; }
        public bool ViewAttractionsType { get; set; }
        public bool ViewAttractionsFirstPayment { set; get; }
        public bool ViewAttractionsSelectedFirstPaymentMethod { set; get; }
        public bool ViewAttractionsDateFirstPayment { set; get; }
        public bool ViewAttractionsSecondPayment { set; get; }
        public bool ViewAttractionsSelectedSecondPaymentMethod { set; get; }
        public bool ViewAttractionsDateSecondPayment { set; get; }
        public bool ViewAttractionsThirdPayment { set; get; }
        public bool ViewAttractionsSelectedThirdPaymentMethod { set; get; }
        public bool ViewAttractionsDateThirdPayment { set; get; }
        public bool ViewAttractionsOutstandingAmt { get; set; }
        public bool ViewAttractionsUnitRate { get; set; }
        public bool ViewAttractionsDeposit { get; set; }
        public bool ViewAttractionsDepositDate { get; set; }
        public bool ViewAttractionsContact { get; set; }
        public bool ViewAttractionsPhone { get; set; }
        public bool ViewAttractionsEmail { get; set; }
        public bool ViewAttractionsAddress { get; set; }
        public bool ViewAttractionsCity { get; set; }
        public bool ViewAttractionsState { get; set; }
        public bool ViewAttractionsTotalCost { get; set; }
        public bool ViewAttractionsTotalAmountPaid { get; set; }
        public bool ViewAttractionsFinalPayment { get; set; }
        public bool ViewAttractionsDepositAmountPaid { get; set; }
        public bool ViewAttractionsCreditCardChargeAmount { get; set; }
        public bool ViewAttractionsCreditCardMemo { get; set; }
        public bool ViewAttractionsDifferenceTotalPaid_TotalCharged { get; set; }

        // for filtering, update, hide show, 
        public bool IsAttractionsFilter { set; get; }
        public bool IsAttractionsView { set; get; }
        public bool IsAttractionsUpdate { set; get; }
        public bool IsAttractionsSearch { set; get; }
        // grid drop down values
        public List<SelectListItem> Employee { get; set; }
        public List<SelectListItem> VendorStatus { get; set; }
        public List<SelectListItem> RestService { get; set; }
        public List<SelectListItem> PaymentMethod { get; set; }
        // Attractions Search
        [DisplayName("Start Date From:")]
        public string AttractionsSearchStartFromDate { get; set; }
        [DisplayName("Start Date To:")]
        public string AttractionsSearchStartToDate { get; set; }
        [DisplayName("Customer:")]
        public string AttractionsSearchCustomer { get; set; }
        [DisplayName("Group Name:")]
        public string AttractionsSearchGroupName { get; set; }
        [DisplayName("Group Code:")]
        public string AttractionsSearchGroupCode { get; set; }
        [DisplayName("Supplier:")]
        public string AttractionsSearchVendorName { get; set; }
        [DisplayName("Employee:")]
        public string AttractionsSearchEmployee { get; set; }
        public int AttractionsSearchEmployeeID { get; set; }
        // Attractions Totals
        [DisplayName("Total Diff:")]
        public string AttractionsDifferenceSum { get; set; }
        [DisplayName("Total Paid:")]
        public string AttractionsTotalPaidSum { get; set; }
        [DisplayName("Total Diff Paid Charged:")]
        public string AttractionsTotalDiffPaidChargedSum { get; set; }
        [DisplayName("Total Out Amt:")]
        public string AttractionsOutstandingAmtSum { get; set; }
        [DisplayName("Total Cost:")]
        public string AttractionsTotalCostAmtSum { get; set; }
        [DisplayName("Grp Profit:")]
        public string AttractionsGroupProfit { get; set; }
        [DisplayName("Total Invoice:")]
        public string AttractionsTotInvoice { get; set; }
        [DisplayName("Profit %:")]
        public string AttractionsProfitPers { get; set; }
        public decimal AttractionsTotCost { get; set; }
        public decimal AttractionsTotCostCad { get; set; }
       
    }
    [Serializable]
    public class OperationAttractionsGridRowViewModel
    {
        public string AttractionsGroupID { get; set; }
        public int AttractionsVendorID { get; set; }
        public string AttractionsSelectedVendorStatus { get; set; }
        public string AttractionsSelectedRestService { get; set; }
        public string AttractionsEstNoOfPerson { get; set; }
        public string AttractionsNewVendorID { get; set; }
        public string AttractionsGroupCode { get; set; }
        public string AttractionsConfHtml { get; set; }
        public string AttractionsGroupContractHtml { get; set; }
        public string AttractionsGroupName { get; set; }
        public string AttractionsCustomer { get; set; }
        public string AttractionsSelectedEmployee { get; set; }
        public string AttractionsPax { get; set; }
        public string AttractionsTotalCost { get; set; }
        public bool AttractionsIsGuideInvoice { get; set; }
        public string AttractionsGuideInvoicePrice { get; set; }
        public bool AttractionsIsInvoice { get; set; }
        public string AttractionsInvoicePrice { get; set; }
        public string AttractionsSupplier { get; set; }
        public string AttractionsDifference { get; set; }
        public string AttractionsDone { get; set; }
        public string AttractionsDate { get; set; }
        public string AttractionsTime { get; set; }
        public string AttractionsCategory { get; set; }
        public string AttractionsType { get; set; }
        public string AttractionsOldRestCategory { get; set; }
        public string AttractionsFirstPayment { get; set; }
        public string AttractionsSelectedFirstPaymentMethod { get; set; }
        public string AttractionsDateFirstPayment { get; set; }
        public string AttractionsSecondPayment { get; set; }
        public string AttractionsSelectedSecondPaymentMethod { get; set; }
        public string AttractionsDateSecondPayment { get; set; }
        public string AttractionsThirdPayment { get; set; }
        public string AttractionsSelectedThirdPaymentMethod { get; set; }
        public string AttractionsDateThirdPayment { get; set; }
        public string AttractionsPayMeth1FormHtml { get; set; }
        public string AttractionsPayMeth2FormHtml { get; set; }
        public string AttractionsPayMeth3FormHtml { get; set; }
        public string AttractionsOptionalFormHtml { get; set; }
        public string AttractionsDeposit { get; set; }
        public string AttractionsUnitRate { get; set; }
        public string AttractionsDepositDate { get; set; }
        public string AttractionsContact { get; set; }
        public string AttractionsPhone { get; set; }
        public string AttractionsEmail { get; set; }
        public string AttractionsAddress { get; set; }
        public string AttractionsCity { get; set; }
        public string AttractionsState { get; set; }
        public string AttractionsTotalAmountPaid { get; set; }
        public string AttractionsOutstandingAmt { get; set; }
        public string AttractionsFinalPayment { get; set; }
        public string AttractionsDepositAmountPaid { get; set; }
        public string AttractionsCreditCardChargeAmount { get; set; }
        public string AttractionsCreditCardMemo { get; set; }
        public string AttractionsDifferenceTotalPaid_TotalCharged { get; set; }
        public string AttractionsQuotaSupplier { get; set; }
        public string AttractionsQuotaPrice { get; set; }
        public string AttractionsQuotaCurr { get; set; }
         
    }
    public class OperationAttractionsGridSaveRowViewModel
    {
        public int GroupID { get; set; }
        public int VendorID { get; set; }
        public int? Pax { get; set; }
        public int SelectedEmployeeID { get; set; }
        public string QuotaCurr { get; set; }
        public string NewVendorID { get; set; }
        public string StartDate { get; set; }
        public string NewStartDate { get; set; }
        public string Done { get; set; }
        public string Time { get; set; }
        public int AttractionsSelectedVendorStatus { get; set; }
        public int AttractionsSelectedRestService { get; set; }
        public string Type { get; set; }
        public string OldRestCategory { get; set; }
        public bool IsGuideInvoice { get; set; }
        public string GuideInvoicePrice { get; set; }
        public bool IsInvoice { get; set; }
        public string InvoicePrice { get; set; }
        public string Deposit { get; set; }
        public string UnitRate { get; set; }
        public string DepositDate { get; set; }
        public string FinalPayment { get; set; }
        public string DepositAmtPaid { get; set; }
        public string CCChargeAmt { get; set; }
        public string CCMemo { get; set; }
        public string AttractionsFirstPayment { get; set; }
        public string AttractionsSelectedFirstPaymentMethod { get; set; }
        public string AttractionsDateFirstPayment { get; set; }
        public string AttractionsSecondPayment { get; set; }
        public string AttractionsSelectedSecondPaymentMethod { get; set; }
        public string AttractionsDateSecondPayment { get; set; }
        public string AttractionsThirdPayment { get; set; }
        public string AttractionsSelectedThirdPaymentMethod { get; set; }
        public string AttractionsDateThirdPayment { get; set; }
    }
    public class OperationAttractionsVendorInfoViewModel
    {
        public int VendorID { get; set; }
        public string VendorName { get; set; }
        public string VendorCity { get; set; }
        public string VendorAddress { get; set; }
        public string VendorPhone { get; set; }
        public string VendorType { get; set; }
        public string VendorEmail { get; set; }
        public string VendorContactPerson { get; set; }
        public bool VendorIsFind { get; set; }
    }
   
}